import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class HashMapDemo08 {
    public static void main(String[] args) {
        /*  key   value
            姓名   xxx
            性别   xx
            出生年月 xxx
         */
        Map<String, String> map = new HashMap<>();
        map.put("name", "孙嘉殷");
        map.put("age", "12");
        map.put("name", "张克林");// key不能重复了，重复覆盖
        map.put("gender", "男");// key不能重复了，重复覆盖

//        System.out.println(map.get("name"));
//        System.out.println(map.get("gender"));//null
//        System.out.println(map.getOrDefault("gender", "女"));
//        map.remove("name");// 删除对应的键值对
//        System.out.println(map.get("name"));//null
//        map.remove("name","张克林");// 键和值都对应上才会删除
//        System.out.println(map.get("name"));

//        map.clear();// 清空

//        System.out.println(map.containsKey("gender"));// 判断是否包含key
//        System.out.println(map.containsValue("女"));// 判断是否包含value


//        Map<String, String> map1 = new HashMap<>();
//        map1.put("1", "1");
//
//        Map<String, String> map2 = new HashMap<>();
//        map2.put("1", "1");
//        System.out.println(map1.equals(map2));


//        map.isEmpty();// map是否为空

//        Set<String> strings = map.keySet();// 把map中所有的key转成set集合
//        System.out.println(strings.size());
//
//        Collection<String> values = map.values();// 把map中所有的值转成集合
//        System.out.println(values.size());

//        Map<String, String> map3 = new HashMap<>();
//        map3.put("1", "1");
//        map.putAll(map3);// 把map3合并map，如果重复会覆盖

//        map.replace("name","王兵");// 替换
//        map.replace("name", "张克林", "王兵");// 替换


//        System.out.println(map.size());// 返回键值对个数


        //-------------------------------------------------------
        // 遍历整个map  Map.Entry<String, String> 这是一个接口类
        Set<Map.Entry<String, String>> entries = map.entrySet();
        for (Map.Entry<String, String> entry : entries) {
            System.out.println(entry.getKey());
            System.out.println(entry.getValue());
        }


    }
}
